home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-21
/
ibmscs.pat
< prev
next >
Wrap
Text File
|
1993-01-09
|
7KB
|
180 lines
ID:IS Patch for IBM SCSI drives
Quarterdeck Technical Document
Latest Revision: March 4, 1992
Subject: Patching QEMM-386 5.10, 5.11, 5.12, 5.13, 6.00, and 6.01 to
resolve problems with programs that make calls to the IBM SCSI interface from
inside Windows 3 enhanced mode.
Background: Programs can use interrupt 4B to make calls to the IBM SCSI
interface. QEMM-386 intercepts interrupt 4B to detect such calls to the IBM
SCSI interface, among other calls. When an interrupt 4B occurs and QEMM-386's
interrupt handler gets control, it puts the system into protected mode in the
process of detecting whether or not it should act on the interrupt or pass it
along.
When Windows 3 is running in enhanced mode, QEMM-386 cannot go into
protected mode, as Windows 3 enhanced mode is already in protected mode. When
a call to the IBM SCSI interface occurs from inside Windows 3 enhanced mode,
Windows passes the call along to QEMM-386's interrupt handler, which makes the
attempt to go into protected mode if High RAM exists. Versions 5.10 though
6.01 of QEMM-386 do not properly handle the failure to go into protected mode,
and the resulting confusion causes the IBM SCSI call to fail. The most likely
symptom is an error message from the software making the IBM SCSI call.
(This problem does not occur with other protected mode software running
under QEMM-386, including Windows 3 standard mode. The Virtual Control
Program Interface (VCPI) normally allows QEMM-386 and other protected mode
programs each to operate in protected mode. Windows 3 enhanced mode is the
only protected mode program whose presence forces QEMM-386 to remain in real
mode.)
Users of versions of QEMM-386 after version 6.01 should not experience
this problem. In the meantime, QEMM-386 can be patched to eliminate the
problem. The only side effect of using this patch is that QEMM-386 can then
not be used reliably with the NOWINDOWS3 (NW3) parameter, which removes QEMM-
386's support for Windows 3.
The following procedure is intended to prevent error messages when
programs running inside Windows 3 enhanced mode make calls to the IBM SCSI
interface when QEMM-386 is running. This procedure is for use with QEMM-386
versions:
5.10 5.11 5.12
5.13 6.00 6.01
********************************************************************
Do NOT use this patch for QEMM-386 5.0 or earlier, or on any version of
QEMM-386 later than 6.01. If you are in doubt, go to the directory where the
QEMM-386 files are located and check the date on the QEMM386.SYS file by
issuing the DOS command:
DIR QEMM386.SYS
If the date on the file is:
5:10 am 5:11 am 5:12 am
5:13 am 6.00 am 6.01 am
then use the patch in this section. If there is no QEMM386.SYS file in
this directory, or if the date on the file is later than 6:01 am, then you
probably have an earlier or later version of QEMM-386, and this patch is not
appropriate.
***************************************************
1) Make a copy of the QEMM386.SYS file in your QEMM directory. We are
about to alter your current copy of QEMM386.SYS; the copy you make will serve
as a backup in case this operation fails.
COPY C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
(If your QEMM386.SYS is not located in the QEMM directory of the C:
drive, change the path accordingly.)
2) Go to the DOS directory on the hard disk and type:
DEBUG C:\QEMM\QEMM386.SYS
(If your QEMM386.SYS is not located in the QEMM directory of the C:
drive, change the path accordingly.)
Hit the Enter key; you should see the DEBUG prompt, which is a hyphen.
3) At the DEBUG prompt, type:
S 100 L FF00 0 74 3 B8
Hit the Enter key; DEBUG should return a segment address and an offset:
xxxx:yyyy
4) At the DEBUG prompt again, use the segment address and offset that was
just returned to give the DEBUG command:
E xxxx:yyyy 0 EB
The address that DEBUG returned in step 3 should be used in place of the
address xxxx:yyyy, which we use as an example. Hit the Enter key; the DEBUG
prompt should return in a moment.
5) At the DEBUG prompt, type
W
Hit the Enter key; DEBUG will announce that it is writing a certain
number of bytes, then it will return the DEBUG prompt.
6) At the DEBUG prompt, type
Q
Hit the Enter key to exit DEBUG and return to DOS.
7) To double-check your patch, type the following from the DOS prompt in
your DOS directory:
COMP C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
(If your QEMM386.SYS is not located in the QEMM directory of the C:
drive, change the path accordingly.)
Hit the Enter key. COMP should return:
C:QEMM386.SYS and C:QEMM386.OLD
Compare error at OFFSET xxxx
File 1 = EB
File 2 = 74
Eof mark not found
Compare more files (Y/N)?
The value xxxx after OFFSET will vary from version to version of QEMM 5.1
or 6.0, but the rest of the message should be the same: it tells us that there
is exactly one byte difference between the files, and the differing byte is EB
in QEMM386.SYS and 74 in QEMM386.OLD. If COMP returns the message:
Files compare ok
...then you probably failed to use DEBUG's W command to save your change, or
you have compared the wrong files. If COMP returns more than one compare
error, or if the bytes returned by the compare error don't match those in the
above example, the procedure has failed. In this case, use the DOS command:
COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS
... to restore the original file, and try again.
If the patch was successful, you should now reboot the system and test
the patched version of QEMM-386.
--------------------------------------------------
If the system fails after you perform this patch, you can follow the
instructions in the "Installation" section of your QEMM-386 manual to recover
without resorting to a boot floppy. After your system is booted successfully,
copy the backup of QEMM-386 that you made back to its original name with the
following DOS command:
COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS
(If your QEMM386.SYS is not located in the QEMM directory of the C:
drive, change the path accordingly.)
You may then wish to try the above procedure again, in case a mistake was
made.
VwkYxw)cO^6awEESRRN6=ev8O^[%,+Vs╩Rⁿ╧╗{yzdI(vVTD"siEYM]CRW'L6\XN@]GED"[BhA3<e(y#_^KB)-hofgbCZX
IE]
uTBE__[eE'lIO]OT_a^'jL^T[/O>0c@PUC3ZxyUQk 2YVXA
PrqY3\TCGC
L71l`(kaV[Xiy&RO'VB!QT-
!A_!@Pt7{y`ue.